module SessionsHelper

  # 登录用户
  def log_in(user)
    session[:user_id] = user.id
  end

  # 用户登录验证和处理
  def log_in_user(email, password)
    user = User.find_by(email: email.downcase)
    # 日志打印用户信息
    Rails.logger.info "用户登录尝试: #{email}, user: #{user.to_json}"

    # 验证用户是否存在且密码是否正确
    if user && user.authenticate(password)
      # 登录成功，将用户 ID 存储在 session 中
      log_in user
      return { success: true, user: user }
    else
      # 登录失败
      return { success: false, message: '登录失败，邮箱或密码错误' }
    end
  end

  # 登出用户
  def log_out
    # 记录登出日志
    if session[:user_id]
      user = User.find_by(id: session[:user_id])
      Rails.logger.info "用户登出: #{user&.email || '未知用户'} (ID: #{session[:user_id]})"
    end

    # 清除所有 session 数据
    session.clear
    
    # 或者只清除用户相关的 session（可选）
    # session.delete(:user_id)
    # session.delete(:remember_token) # 如果有记住我功能
  end

  # 当前用户
  def current_user
    @current_user ||= User.find_by(id: session[:user_id])
  end

  # 检查用户是否登录
  def logged_in?
    !current_user.nil?
  end

  def current_user?(user)
    user == current_user
  end

end
